﻿using System;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using System.Collections.Generic;
using System.ComponentModel;

namespace Sinacor.Servico.Bovespa.Movimento.Service.ServiceImplementation
{
    [SinacorServiceBehavior]
    public class ControleMovimentoBolsa : ServiceContract.IControleMovimentoBolsa
    {

        #region IControleMovimentoBolsa Members

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public DataContract.Response.DataMovimentoResponse CalcularDataAberturaMovimento()
        {
            BusinessLogic.ControleMovimentoBolsa controleMovimentoBolsa = new BusinessLogic.ControleMovimentoBolsa();
            return Translator.BusinessEntityToDataContract.ControleMovimentoBolsa.ToDataMovimentoResponse(controleMovimentoBolsa.CalcularDataAberturaMovimento());             
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public DataContract.Response.InformacoesMovimentoResponse ObterInformacoesMovimento(DataContract.Request.DataMovimentoRequest request)
        {
            BusinessLogic.ControleMovimentoBolsa controleMovimentoBolsa = new BusinessLogic.ControleMovimentoBolsa();
            return Translator.BusinessEntityToDataContract.ControleMovimentoBolsa.ToInformacoesMovimentoResponse(controleMovimentoBolsa.ObterInformacoesMovimento(Translator.DataContractToBusinessEntity.ControleMovimentoBolsa.ToDataMovimento(request)));
        }

        public void RemontarCalendario()
        {
            BusinessLogic.ControleMovimentoBolsa controleMovimentoBolsa = new BusinessLogic.ControleMovimentoBolsa();
            controleMovimentoBolsa.RemontarCalendario();
        }

        #endregion
    }
}
